using B.S.XZYData.Api.Read.Dto.WorkOrder;
using B.S.XZYData.ErrorCode;
using MediatR;
using System;
using System.Collections.Generic;

namespace B.S.XZYData.Api.Read.Application.Command.WorkOrder
{
    /// <summary>
    /// 获取所有工单综合信息命令（按工序展开）
    /// </summary>
    public class GetAllWorkOrderComprehensiveInfoCommand : IRequest<ApiResult<List<WorkOrderProcessComprehensiveDto>>>
    {
        /// <summary>
        /// 工单编号模糊查询
        /// </summary>
        public string? WorkOrderCode { get; set; }

        /// <summary>
        /// 产品编号模糊查询
        /// </summary>
        public string? ProductCode { get; set; }

        /// <summary>
        /// 产品名称模糊查询
        /// </summary>
        public string? ProductName { get; set; }

        /// <summary>
        /// 工序编号模糊查询
        /// </summary>
        public string? ProcessCode { get; set; }

        /// <summary>
        /// 工序名称模糊查询
        /// </summary>
        public string? ProcessName { get; set; }

        /// <summary>
        /// 工单状态筛选
        /// </summary>
        public string? WorkOrderStatus { get; set; }

        /// <summary>
        /// 工序状态筛选
        /// </summary>
        public string? ProcessStatus { get; set; }

        /// <summary>
        /// 计划开始时间范围查询 - 开始
        /// </summary>
        public DateTime? PlannedStartTimeStart { get; set; }

        /// <summary>
        /// 计划开始时间范围查询 - 结束
        /// </summary>
        public DateTime? PlannedStartTimeEnd { get; set; }

        /// <summary>
        /// 计划结束时间范围查询 - 开始
        /// </summary>
        public DateTime? PlannedEndTimeStart { get; set; }

        /// <summary>
        /// 计划结束时间范围查询 - 结束
        /// </summary>
        public DateTime? PlannedEndTimeEnd { get; set; }
    }
}
